您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

双向协议无关组播网络中组播转发表项建立方法及设备

  • 申请号:CN201110080252.6 申请公布号: CN102158405B
  • 申请日: 2011-03-31 申请公布日: 2014-06-11
  • 申请(专利权)人: 专利代理机构: 北京德琦知识产权代理有限公司
  • 分类号:H04L12/761;H04L12/70

专利介绍

本发明公开了双向协议无关组播网络中组播转发表项建立方法及设备。方法包括:双向PIM组播源的直连设备接收来自该组播源的针对组播组G的第一协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为直连设备的RPF接口,并从所述RPF接口向RP方向发送第二协议报文,所述第二协议报文用于指示上游设备建立(*,G)表项,该表项的出接口为上游设备的RPF接口;其中,第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的。本发明提高了双向PIM转发效率。
1.一种双向协议无关组播PIM网络中组播转发表项建立方法,其特征在于,该方法包括:双向PIM组播源的直连设备接收组播源发来的针对组播组G的第一协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为直连设备的反向路径转发RPF接口,并从所述RPF接口向汇合点RP方向发送第二协议报文,以便:从组播源的直连设备到RP所途径的任一设备接收到所述第二协议报文后,根据该第二协议报文建立(*,G)表项,该表项的出接口为本设备的RPF接口,且该第二协议报文最终会到达RP;其中,第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的。
2.根据权利要求1所述的方法,其特征在于,所述第一协议报文为:IGMPv1报告报文,其中,该报文的Unused字段表示该报文用于指示直连设备建立出接口为RPF接口的(*,G)表项。
3.根据权利要求1所述的方法,其特征在于,所述第二协议报文为:PIM加入报文,其中,该报文的第二个Reserved字段表示该报文用于指示上游设备建立出接口为RPF接口的(*,G)表项。
4.一种双向PIM网络中组播转发表项建立方法,其特征在于,该方法包括:上游设备接收双向PIM组播源的直连设备发来的针对组播组G的第二协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为该上游设备的RPF接口,并从所述RPF接口向RP方向转发第二协议报文;所述第二协议报文为所述直连设备接收到双向PIM组播源发来的针对组播组G的第一协议报文后发出的,所述第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的。
5.根据权利要求4所述的方法,其特征在于,所述第二协议报文为:PIM加入报文,其中,该报文的第二个Reserved字段表示该报文用于指示所述上游设备建立出接口为RPF接口的(*,G)表项。
6.一种双向PIM组播源的直连设备,位于双向PIM组播源与RP之间的路径上,其特征在于,该设备包括:协议报文收发模块:接收双向PIM组播源发来的针对一个组播组G的第一协议报文,将该报文发送给表项建立模块,同时从自身的RPF接口向RP方向发出第二协议报文,以便:从组播源的直连设备到RP所途径的任一设备接收到所述第二协议报文后,根据该第二协议报文建立(*,G)表项,该表项的出接口为本设备的RPF接口,且该第二协议报文最终会到达RP;其中,第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的;表项建立模块:接收协议报文收发模块发来的第一协议报文,根据该报文建立(*,G)表项,该表项的出接口为本设备的RPF接口。
7.一种上游设备,位于双向PIM组播源的直连设备与RP之间的路径上,其特征在于,该上游设备包括:协议报文收发模块:接收来自双向PIM组播源的直连设备方向的针对一个组播组G的第二协议报文,将该报文发送给表项建立模块,同时从自身的RPF接口向RP方向转发第二协议报文,所述第二协议报文为所述直连设备接收到双向PIM组播源发来的针对组播组G的第一协议报文后发出的,所述第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的;表项建立模块:接收协议报文收发模块发来的第二协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为本设备的RPF接口。技术领域
本发明涉及组播技术领域,具体涉及双向协议无关组播(PIM,ProtocolIndependentxa0Multicast)网络中组播转发表项建立方法及设备。
背景技术
双向协议无关组播(PIM,Protocolxa0Independentxa0Multicast)协议假设组播源同时也是接收者,适用于视频会议等场景。但实际组网中,组播源到汇合点(RP,Rendezvousxa0Point)的路径上不一定有接收者,但为了流量能顺利转发,组播源到RP的路径上需要建立对应组的转发表项才能转发组播流量。图1给出了一个现有的双向PIM的组网示例图,如图1所示,组网中存在2个接收者,根据双向PIM协议,(*,G)表项的反向路径转发(RPF,Reversexa0Pathxa0Forwarding)接口为到RP最近的接口,组播流会首先发送到RP,再转发给接收者。接收者到RP的(*,G)表项由因特网组管理协议(IGMP,Internetxa0Groupxa0Managementxa0Protocol)和PIM加入报文触发建立,用于转发组播流。发送者到RP也需要通过(*,G)表项来转发组播流,不能采用传统的PIM-稀疏模式(SM,Sparsexa0Mode)和PIM-密集模式(DM,Densexa0Mode)的单播方式,影响效率。目前业界采用流驱动的方式在组播源到RP的链路上建立(*,G)表项。流驱动方式对设备会造成较大的冲击,并且在表项建立后才能转发,需要设备缓存等待,存在延时和丢包的可能。
发明内容
本发明提供双向PIM网络中组播转发表项建立方法及设备,以提高双向PIM转发效率。本发明的技术方案是这样实现的:一种双向协议无关组播PIM网络中组播转发表项建立方法,该方法包括:双向PIM组播源的直连设备接收组播源发来的针对组播组G的第一协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为直连设备的反向路径转发RPF接口,并从所述RPF接口向汇合点RP方向发送第二协议报文,所述第二协议报文用于指示上游设备建立(*,G)表项,该表项的出接口为上游设备的RPF接口;其中,第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的。所述第一协议报文为:IGMPv1报告报文,其中,该报文的Unused字段表示该报文用于指示直连设备建立出接口为RPF接口的(*,G)表项。所述第二协议报文为:PIM加入报文,其中,该报文的第二个Reserved字段表示该报文用于指示上游设备建立出接口为RPF接口的(*,G)表项。一种双向PIM网络中组播转发表项建立方法,该方法包括:上游设备接收双向PIM组播源的直连设备发来的针对组播组G的第二协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为该上游设备的RPF接口,并从所述RPF接口向RP方向转发第二协议报文。所述第二协议报文为:PIM加入报文,其中,该报文的第二个Reserved字段表示该报文用于指示所述上游设备建立出接口为RPF接口的(*,G)表项。一种双向PIM组播源的直连设备,位于双向PIM组播源与RP之间的路径上,该设备包括:协议报文收发模块:接收双向PIM组播源发来的针对一个组播组G的第一协议报文,将该报文发送给表项建立模块,同时从自身的RPF接口向RP方向发出第二协议报文,所述第二协议报文用于指示上游设备建立(*,G)表项,该表项的出接口为上游设备的RPF接口;其中,第一协议报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的;表项建立模块:接收协议报文收发模块发来的第一协议报文,根据该报文建立(*,G)表项,该表项的出接口为本设备的RPF接口。一种上游设备,位于双向PIM组播源的直连设备与RP之间的路径上,该上游设备包括:协议报文收发模块:接收来自双向PIM组播源的直连设备方向的针对一个组播组G的第二协议报文,将该报文发送给表项建立模块,同时从自身的RPF接口向RP方向转发第二协议报文;表项建立模块:接收协议报文收发模块发来的第二协议报文,根据该协议报文建立(*,G)表项,该表项的出接口为本设备的RPF接口。一种双向PIM组播源,包括:第一模块,用于在要发出针对一个组播组G的组播流前,发出一个针对该组播组G的第一协议报文,该报文用于指示该报文的接收设备建立出接口为RPF接口的(*,G)表项。与现有技术相比,本发明中,双向PIM组播源在发送针对一个组播组G的组播流前先发出一个针对组播组G的第一协议报文,以触发该组播源与RP之间的设备建立(*,G)表项,从而避免了大量数据报文对设备的周期性的冲击,且不需要设备缓存等待,降低了延时和丢包的可能性;同时通过控制报文而不是组播流来建立(*,G)表项,使得表项的建立更高效、可控,当设备异常时也可加速表项的清除。
附图说明
图1为现有的双向PIM的组网示例图;图2为本发明实施例提供的双向PIM网络中组播转发表项建立方法的流程图;图3为本发明实施例提供的双向PIM组播源的直连设备的组成图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。图2为本发明实施例提供的双向PIM网络中组播转发表项建立方法的流程图,如图2所示,其具体步骤如下:步骤201:双向PIM组播源在发送针对一个组播组G的组播流前,发出一个IGMPv1报告(Report)报文,该报文中携带组播组G地址,同时携带双向PIM组播源的IGMP加入指示。本实施例中,组播源在启动一个双向PIM应用,如:启动一个视频会议时,就立即发出一个IGMPv1Report报文。IGMPv1Report报文的格式如下:0xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|xa0xa0Version|xa0xa0xa0xa0Type|xa0xa0xa0xa0xa0xa0xa0Unused|xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0Checksumxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0Groupxa0Addressxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-本实施例中,各字段的含义及取值如下:Version:IGMP版本号,这里,取值为1,表示为IGMPv1;Type:报文类型,这里,取值为0x2,表示为查询报文;Unused:该字段在现有的IGMPv1xa0Report报文中为未使用字段,本实施例中,使用该字段表示双向PIM组播源的IGMP加入,这里,可取值为0x07。步骤202:IGMPv1xa0Report报文到达组播源的直连设备,该设备根据该报文建立(*,G)表项,同时将自身的RPF接口添加为该表项的出接口,并将该出接口的属性设为IGMPv1*,并从自身的RPF接口发送PIM加入(Join)报文,PIMxa0Join报文携带组播组G地址。这里将出接口的属性设为IGMPv1*是为了和现有表项出接口的属性进行区分,当然如果不作区分,和现有出接口的属性设置一致也没有问题。本实施例中,为了将PIMxa0Join报文与现有的PIMxa0Join报文相区别,需要对PIMxa0Join报文进行修改,具体如下:PIMxa0Join报文的格式如下:0xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00xa01xa02xa03xa04xa05xa06xa07xa00+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|xa0xa0PIMxa0Verxa0|xa0xa0xa0Typexa0xa0|xa0xa0xa0xa0Reservedxa0xa0|xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0Checksumxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|xa0xa0xa0xa0xa0xa0xa0xa0xa0Encoded-Unicast-Upstreamxa0Neighborxa0Addressxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|xa0xa0Reservedxa0xa0xa0xa0xa0xa0xa0xa0xa0|xa0xa0Numxa0groupsxa0xa0xa0|xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0Holdtimexa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-本实施例中,使用第二个Reserved字段即,Numxa0groups之前的Reserved字段表示该PIMxa0Join报文是由扩展的IGMPv1xa0Report报文触发的,这里,可取值为0x07。步骤203:组播源的直连设备的上游设备接收PIMxa0Join报文,根据该报文建立(*,G)表项,同时将自身的RPF接口添加为该表项的出接口,并将该出接口的属性设为PIM*,并从自身的RPF接口发送PIMxa0Join报文,PIMJoin报文携带组播组G地址。这里的“组播源的直连设备的上游设备”指的是从组播源的直连设备到RP所途经的第一台设备。对于从组播源的直连设备到RP所途经的任一设备,该设备接收到PIMJoin报文后,都会进行步骤203的处理,PIMxa0Join报文最终会到达RP。当然,这里出接口的属性和现有的出接口的属性设置一致也没有问题。本步骤中的PIMxa0Join报文与步骤202相同,需要将第二个Reserved字段表示为该报文是由扩展的IGMPv1xa0Report报文触发的,可取值为0x07。步骤204:RP接收PIMxa0Join报文。本实施例中应用IGMPv1xa0Report报文以及PIMxa0Join报文来指示组播源的加入是一种比较优的实施方式,可以和现有的组播协议达到比较好的融合。如果仅从实现本发明的目的来看,也可以不使用IGMPv1xa0Report报文和PIMJoin报文,只要该报文能够被接收该报文的设备所识别,并且根据该报文建立以RPF为出接口的(*,G)表项即可。所以,完全可以自定义一种协议报文来完成上述作用。此后,当组播源发送针对组播组G的组播流后,在组播源到RP路径上的设备就根据建立的(*,G)表项进行组播流的转发。具体地,组播源发送的组播流到达上游的各个运行双向PIM协议的设备时,这些设备根据组播组G对应的(*,G)表项的出接口,将组播流从RPF接口转发出去,最终组播流到达了RP。现有的采用流驱动方式生成双向PIM的(*,G)表项的情况下,假如组播源异常挂断,(*,G)表项需要等待210s老化。本发明实施例中,使用IGMPv1报文生成(*,G)表项,假如组播源异常挂断,(*,G)表项的老化时间能缩短到120s。图3为本发明实施例提供的双向PIM组播源的直连设备的组成图,该直连设备位于双向PIM组播源与RP之间的路径上,如图3所示,其主要包括:协议报文收发模块31、表项建立模块32、表项存储模块33和流转发模块34,其中:协议报文收发模块31:接收来自双向PIM组播源侧的针对一个组播组G的双向PIM组播源IGMP加入报文,将该报文发送给表项建立模块32,同时从本设备的RPF接口发出双向PIM组播源PIM加入报文,其中,所述双向PIM组播源IGMP加入报文为双向PIM组播源在发送针对所述组播组G的组播流前发出的。表项建立模块32:接收协议报文收发模块31发来的针对组播组G的双向PIM组播源IGMP加入报文,根据该报文建立(*,G)表项,将本设备的RPF接口添加为该表项的出接口,将(*,G)表项保存到表项存储模块33中。表项存储模块33:存储(*,G)表项。流转发模块34:接收双向PIM组播源发来的组播流,在表项存储模块33中查找该组播流对应的(*,G)表项,根据该(*,G)表项的出接口,将该组播流转发出去。以下给出本发明实施例提供的上游设备的组成,该上游设备位于双向PIM组播源的直连设备与RP之间的路径上,该上游设备主要包括:协议报文收发模块、表项建立模块、表项存储模块和流转发模块,其中:协议报文收发模块:接收来自双向PIM组播源的直连设备方向的针对一个组播组G的双向PIM组播源PIM加入报文,将该报文发送给表项建立模块,同时从本设备的RPF接口转发该报文。表项建立模块:接收协议报文收发模块发来的针对组播组G的双向PIM组播源PIM加入报文,根据该报文建立(*,G)表项,将本设备的RPF接口添加为该表项的出接口,将(*,G)表项保存到表项存储模块中。表项存储模块:存储(*,G)表项。流转发模块:接收双向PIM组播源发来的组播流,在表项存储模块中查找该组播流对应的(*,G)表项,根据该(*,G)表项的出接口,将该组播流转发出去。以下给出本发明实施例提供的双向PIM组播源的组成,该双向PIM组播源包括:第一模块,用于在要发出针对一个组播组G的组播流前,发出一个针对该组播组G的双向PIM组播源加入报文。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。